Partie 2 : décodage du message caché
On donne la bibliothèque nécessaire ainsi que les fonctions qui permettent d'extraire le code du message de l'image et de déchiffrer le message :
from PIL import Image
def decode64(codein):
code64 = {'000000': 'A', '000001': 'B', '000010': 'C', '000011': 'D',
'000100': 'E', '000101': 'F', '000110': 'G', '000111': 'H',
'001000': 'I', '001001': 'J', '001010': 'K', '001011': 'L',
'001100': 'M', '001101': 'N', '001110': 'O', '001111': 'P',
'010000': 'Q', '010001': 'R', '010010': 'S', '010011': 'T',
'010100': 'U', '010101': 'V', '010110': 'W', '010111': 'X',
'011000': 'Y', '011001': 'Z', '011010': 'a', '011011': 'b',
'011100': 'c', '011101': 'd', '011110': 'e', '011111': 'f',
'100000': 'g', '100001': 'h', '100010': 'i', '100011': 'j',
'100100': 'k', '100101': 'l', '100110': 'm', '100111': 'n',
'101000': 'o', '101001': 'p', '101010': 'q', '101011': 'r',
'101100': 's', '101101': 't', '101110': 'u', '101111': 'v',
'110000': 'w', '110001': 'x', '110010': 'y', '110011': 'z',
'110100': '0', '110101': '1', '110110': '2', '110111': '3',
'111000': '4', '111001': '5', '111010': '6', '111011': '7',
'111100': '8', '111101': '9', '111110': ' ', '111111': '.'}
return code64[codein]
def decode(pixel):
""" Permet de récupérer le code binaire sur 6 bits dans les trois composantes
RVB de pixel. Le code se trouve dans les deux bits de poids faible de
chaque composante"""
r = pixel[0] & 0b11
v = pixel[1] & 0b11
b = pixel[2] & 0b11
rvb = r*16 + v*4 + b
rvbb = bin(rvb)[2:]
while len(rvbb) < 6:
rvbb = '0'+rvbb
return rvbb
Vous allez découvrir le message caché dans l'image. Pour chaque composante RVB de chaque pixel de l'image il faut :
Il faut ensuite afficher le message.
2. Compléter le programme suivant :
img_codee = "tigreCode.bmp"
message = ""
listeimage = []
img = Image.open(img_codee)
dataimage = img.getdata()
for pixel in dataimage:
# A compléter
Source : https://lesmanuelslibres.region-academique-idf.fr Télécharger le manuel : https://forge.apps.education.fr/drane-ile-de-france/les-manuels-libres/snt-seconde ou directement le fichier ZIP Sous réserve des droits de propriété intellectuelle de tiers, les contenus de ce site sont proposés dans le cadre du droit Français sous licence CC BY-NC-SA 4.0